﻿#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
//#define MAXCAPACITY 100
//int main()
//{
//    char arr[MAXCAPACITY];
//    fgets(arr, MAXCAPACITY, stdin);
//    int i = 0;
//    int upper = 0, lower = 0;
//    while (arr[i] != '\0')
//    {
//        if (islower(arr[i]))
//        {
//            lower++;
//        }
//        if (isupper(arr[i]))
//        {
//            upper++;
//        }
//        i++;
//    }
//    printf("upper=%d lower=%d",upper,lower);
//    return 0;
//}

//#define MAXCAPACITY 100
//int main()
//{
//    char arr[MAXCAPACITY];
//    fgets(arr, MAXCAPACITY, stdin);
//    int i = 1;
//    char max = arr[0];
//    while (arr[i] != '\0')
//    {
//        if (arr[i] > max)
//        {
//            max = arr[i];
//        }
//        i++;
//    }
//    printf("max = %c",max);
//    return 0;
//}
//#include<stdlib.h>
//int main()
//{
//    char arr[] = "hello world";
//    int sz = strlen(arr);
//    char* p = malloc(sizeof(char) * (sz + 1));
//    int i = 0;
//    while (arr[i] != '\0')
//    {
//        p[i] = arr[i];
//        i++;
//    }
//    p[i] = '\0';
//    printf("%s",p);
//    return 0;
//}
//#include<stdlib.h>
//int charCompare(const void* p1, const void* p2)
//{
//    return *((char*)p1)- *((char*)p2);
//}
//int main()
//{
//    char a[] = "asdfghjkl";
//    int sz = sizeof(a) / sizeof(a[0]);
//    qsort(a, sz,sizeof(a[0]), charCompare);
//    for (int i = 1; i < sz; i++)//\0被放在a[0]
//    {
//        printf("%c",a[i]);
//    }
//    return 0;
//}

//int main()
//{
//    char a[] = "abcdef";
//    char* b = "ABCDEF";
//    int i;
//    for (int i = 0; i < 3; i++)
//      printf("%d, %s\n",*a,b + i);
//    printf("-----------\n");
//    for (int i = 0; i < 3; i++)
//    {
//        putchar(*(b + i));
//        printf("%c\n",*(a + i));
//    }
//    return 0;
//}
//#include<ctype.h>
//int main()
//{
//    int i = 0;
//    char s[120];
//    printf("Enter a string\n");
//    scanf("%s", s);
//    while (s[i] != '\0')
//    {
//        if (isupper(s[i]))
//        {
//            s[i] = tolower(s[i]);
//        }
//        i++;
//    }
//    printf("%s",s);
//    return 0;
//}
//#include<string.h>
//int judge(char ch, char* arr)
//{
//    for (int i = 0; i < strlen(arr); i++)
//    {
//        if (arr[i] == ch)
//        {
//            return 1;
//        }
//    }
//    return 0;
//}
//int main()
//{
//    char ch;
//    ch = getchar();
//    char arr[] = "asdfghjkl";
//    int tmp = judge(ch, arr);
//    printf("%d",tmp);
//    return 0;
//}
//#include<ctype.h>
//void charStr(char* str)
//{
//    for (int i = 0; i < strlen(str); i++)
//    {
//        if (islower(str[i]))
//        {
//            str[i] = toupper(str[i]);
//        }
//    }
//}
//int main()
//{
//    char str[1024];
//    fgets(str, 1024, stdin);
//    charStr(str);
//    printf("%s",str);
//    return 0;
//}
//#define MAXCAPACITY 100
//int StringLength(char* string)
//{
//    int count = 0;
//    while (string[count] != '\0')
//    {
//        count++;
//    }
//    return count - 1;
//}
//int main()
//{
//    char str[MAXCAPACITY];
//    fgets(str, MAXCAPACITY, stdin);
//    int length = StringLength(str);
//    printf("%d",length);
//    return 0;
//}
//#include<ctype.h>]
//void Input(char* str)
//{
//    for (int i = 0; i < strlen(str); i++)
//    {
//        int k = i;
//        while (isalpha(str[i]))
//        {
//            printf("%c",str[i]);
//            i++;
//        }
//        if (i != k)
//        {
//            printf(" ");
//        }
//    }
//}
//int main()
//{
//    char str[1024];
//    fgets(str, 1024, stdin);
//    Input(str);
//    return 0;
//}

//void stringContact(char* str1, char* str2)
//{
//    int i = 0;
//    while (str1[i] != '\0')
//    {
//        i++;
//    }
//    int j = 0;
//    while (str2[j] != '\0')
//    {
//        str1[i++] = str2[j++];
//    }
//    str1[i] = '\0';
//}
//int main()
//{
//    char str1[11] = "hello";
//    char* str2 = "world";
//    stringContact(str1, str2);
//    printf("%s",str1);
//    return 0;
//}
//void stringInvert(char* str)
//{
//    int first = 0;
//    int end = strlen(str) - 1;
//    while (first < end)
//    {
//        char tmp = str[first];
//        str[first++] = str[end];
//        str[end--] = tmp;
//    }
//}
//int main()
//{
//    char str[] = "abcdefg";
//    stringInvert(str);
//    printf("%s", str);
//    return 0;
//}

//int main()
//{
//    char strOld[] = "asdfghjkl";
//    int sz = strlen(strOld);
//    char* Vowel = malloc(sz * sizeof(char));
//
//
//    return 0;
//}

//int main()
//{
//    int A[3][3] = { 1,2,3,4,5,6,7,8,9 };
//    int B[3][3] = { 2,5,8,1,4,7,3,6,9 };
//    int c[3][3] = {0};
//    for (int i = 0; i < 3; i++)
//    {
//        for (int j = 0; j < 3; j++) {
//            for (int r = 0; r < 3; r++)
//            {
//                c[i][j] += A[i][r] * B[r][j];
//            }
//        }
//    }
//    for (int i = 0; i < 3; i++)
//    {
//        for (int j = 0; j < 3; j++)
//        {
//            printf("%d ",c[i][j]);
//        }
//        printf("\n");
//    }
//    return 0;
//}
//#include<stdlib.h>
//#include<string.h>
//#include<stdbool.h>
//bool isVowel(char ch)
//{
//    return ch == 'A' || ch == 'a' || ch == 'E' || ch == 'e' || ch == 'i' || ch == 'i'
//        || ch == 'O' || ch == 'o' || ch == 'U' || ch == 'u';
//}
//void strVowel(char strOld[], char Vowel[])
//{
//    int j = 0;
//    for (int i = 0; i < strlen(strOld); i++)
//    {
//        if (isVowel(strOld[i]))
//        {
//            Vowel[j++] = strOld[i];
//        }
//    }
//    Vowel[j] = '\0';
//}
//int main()
//{
//    char strOld[] = "qwertyuiopasdfghjkzxcvbnm";
//    int sz = strlen(strOld);
//    char* Vowel = malloc((sz + 1) * sizeof(char));
//    strVowel(strOld, Vowel);
//    printf("%s",Vowel);
//    return 0;
//}

#define MAXCAPACITY 100
#include<ctype.h>
void strStatistics(char strings[], int pNum[])
{
    int i = 0;
    while (strings[i] != '\0')
    {
        if (isdigit(strings[i]))
        {
            pNum[0]++;
        }
        else if (isalpha(strings[i]))
        {
            pNum[1]++;
        }
        else if (strings[i] == ' ')
        {
            pNum[2]++;
        }
        else
        {
            pNum[3]++;
        }
    }
}
int main()
{
    char strings[MAXCAPACITY];
    fgets(strings, MAXCAPACITY, stdin);
    int pNum[4] = { 0 };
    strStatistics(strings, pNum);
    return 0;
}
